package com.sync.data.ievent.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sync.data.base.BaseEntity;
import com.sync.data.common.annotation.FieldProps;
import com.sync.data.common.annotation.FieldType;
import com.sync.data.common.obj.annoation.ObjectPrefix;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

/**
 * 客户对象
 *
 * @author liquanchang
 */
@Getter
@Setter
@Entity
@ObjectPrefix("baem")
@Table(name = "base_employee")
public class IeventBaseEmployee extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @FieldProps(type = FieldType.STRING,label = "离职时间")
    private Date leaveDate;
    @FieldProps(type = FieldType.STRING,label = "省")
    private String baseProvince;
    @FieldProps(type = FieldType.STRING,label = "市")
    private String baseCity;
    @FieldProps(type = FieldType.STRING,label = "手机号")
    private String phone;
    @FieldProps(type = FieldType.STRING,label = "邮件")
    private String email;

    @FieldProps(type = FieldType.STRING,label = "员工编号")
    private String employeeCode;
    @FieldProps(type = FieldType.STRING,label = "员工姓名")
    private String employeeName;
    @FieldProps(type = FieldType.STRING,label = "英文名")
    private String employeeNameEn;
    @FieldProps(type = FieldType.STRING,label = "入职日期")
    private Date hireDate;
    @FieldProps(type = FieldType.STRING,label = "电话")
    private String telephone;
    @FieldProps(type = FieldType.STRING,label = "头像")
    private String avatar;
    @FieldProps(type = FieldType.STRING,label = "所属公司")
    private String company;
    @FieldProps(type = FieldType.STRING,label = "所属公司")
    private String companyEntity;
    @FieldProps(type = FieldType.STRING,label = "所属公司编号")
    private String companyEntityCode;
    @FieldProps(type = FieldType.STRING,label = "Division")
    private String employeeDivision;
    @FieldProps(type = FieldType.STRING,label = "BU")
    private String employeeBu;
    @FieldProps(type = FieldType.STRING,label = "部门")
    private String employeeDepart;
    @FieldProps(type = FieldType.STRING,label = "职务")
    private String title;
    @FieldProps(type = FieldType.STRING,label = "详细地址")
    private String baseLocation;
    @FieldProps(type = FieldType.STRING,label = "SSO ID")
    private String federationId;
    @FieldProps(type = FieldType.STRING,label = "企业微信ID")
    private String enterpriseWechatUnionid;
    @FieldProps(type = FieldType.STRING,label = "钉钉ID")
    private String dingtalkUnionid;
    @FieldProps(type = FieldType.STRING,label = "原始数据ID")
    private String legacyId;
    @FieldProps(type = FieldType.STRING,label = "是否生效(0-无效, 1-有效)")
    private Integer isActive;
    @FieldProps(type = FieldType.STRING,label = "性别")
    private String gender;
    @FieldProps(type = FieldType.STRING,label = "级别")
    private String employeeLevel;
    @FieldProps(type = FieldType.STRING,label = "工作职务")
    private String businessTitle;
    @FieldProps(type = FieldType.STRING,label = "工作类型")
    private String workType;
    @FieldProps(type = FieldType.STRING,label = "员工类型")
    private String employeeType;
    @FieldProps(type = FieldType.STRING,label = "生日")
    private Date birthday;
    @FieldProps(type = FieldType.STRING,label = "是否管理人员")
    private Integer isManager;
    @FieldProps(type = FieldType.STRING,label = "是否助理")
    private Integer isAssistant;
    @FieldProps(type = FieldType.STRING,label = "管理级别")
    private String managementLevel;
    @FieldProps(type = FieldType.STRING,label = "工作时间类型")
    private String workTimeType;
    @FieldProps(type = FieldType.STRING,label = "最初招聘日期")
    private Date originalHireDate;
    @FieldProps(type = FieldType.STRING,label = "成本中心编号")
    private String costCenterCode;
    @FieldProps(type = FieldType.STRING,label = "成本中心名称")
    private String costCenterName;
    @FieldProps(type = FieldType.STRING,label = "监管员工编号")
    private String supervisoryEmpCode;
    @FieldProps(type = FieldType.STRING,label = "监管员工姓名")
    private String supervisoryEmpName;
    @FieldProps(type = FieldType.STRING,label = "保留字段1")
    private String customField1;
    @FieldProps(type = FieldType.STRING,label = "保留字段2")
    private String customField2;
    @FieldProps(type = FieldType.STRING,label = "保留字段3")
    private String customField3;
    @FieldProps(type = FieldType.STRING,label = "保留字段4")
    private String customField4;
    @FieldProps(type = FieldType.STRING,label = "保留字段5")
    private String customField5;
    @FieldProps(type = FieldType.STRING,label = "保留字段6")
    private String customField6;

    /**
     * 微信openId
     */
    @FieldProps(type = FieldType.STRING, label = "微信openId")
    @Column(name = "openid")
    private String openId;

    /**
     * 微信unionId
     */
    @FieldProps(type = FieldType.STRING, label = "微信unionId")
    private String unionId;

    @FieldProps(type = FieldType.STRING,label = "外键ID")
    private String externalId;

    @FieldProps(type = FieldType.STRING,label = "职位编码")
    private String jobCode;

    @FieldProps(type = FieldType.STRING,label = "职位名称")
    private String jobName;

    @FieldProps(type = FieldType.STRING,label = "删除标志")
    private String delFlag;

    @FieldProps(type = FieldType.STRING,label = "实体id")
    private String entityId;

}
